package com.dragon.repository.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 付款
 * </p>
 *
 * @author sy
 * @since 2023-11-08
 */
@Getter
@Setter
@TableName("dragon_payment")
public class Payment implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 自增id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 总付款金额
     */
    private Double money;

    /**
     * 本次付款金额
     */
    private Double thisTimeMoney;

    /**
     * 类型：1供应商 2工资 3日常 4其他
     */
    private Integer type;

    /**
     * 供应商id
     */
    private Integer supplierId;

    /**
     * 供应商名称
     */
    @TableField(exist = false)
    private String supplierName;

    /**
     * 申请人
     */
    private Integer adminId;

    /**
     * 部门id
     */
    private Integer departmentId;

    /**
     * 主题
     */
    private String title;

    /**
     * 事由
     */
    private String incident;

    /**
     * 状态：0 待审核 1审核通过 2审核不通过 3作废 4删除
     */
    private Integer status;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    /**
     * 付款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date payTime;

    /**
     * 删除标识: 0未删除 1已删除
     */
    private Integer deleted;

    /**
     * 申请人名称
     */
    @TableField(exist = false)
    private String adminName;

    /**
     * 部门名称
     */
    @TableField(exist = false)
    private String departmentName;

    /**
     * 工作流json
     */
    @TableField(exist = false)
    private List<WorkflowJson> workflowJsonList;

    /**
     * 付款附件
     */
    @TableField(exist = false)
    private List<OtherFile> otherFileList;

    /**
     * 免审操作：0，不免审，1免审
     */
    @TableField(exist = false)
    private Integer exempt;

    /**
     * 付款状态：0未付款 1已付款
     */
    private Integer paymentStatus;

    /**
     * 确认付款时间
     */
    private Date confirmPayTime;

    /**
     * 付款账号
     */
    private String payAccount;

    /**
     * 付款类型
     */
    private Integer payType;


}
